package ejb.contentManagement;

import java.util.List;

import ejb.dto.ExcursionDTO;

public interface ExcursionMgr {

	/**
	 * Return ExcursionDTO of Excursion identified by <code>id</code>
	 * @param id
	 * @return ExcursionDTO
	 */
	ExcursionDTO getExcursionDTO(int id);

	/**
	 * Return all ExcursionDTO
	 * @return all ExcursionDTO
	 */
	List<ExcursionDTO> getAllExcursionsDTO();

	/**
	 * Delete Excursion identified by <code>id</code> from database
	 * @param id
	 * @return <true> if the operation on database is successful, <false> if not
	 */
	boolean deleteExcursion(int id);

	/**
	 * Update Excursion identified by <code>updatedExcursion</code> in database
	 * @param updatedExcursion
	 * @return <true> if the operation on database is successful, <false> if not
	 */
	boolean updateExcursion(ExcursionDTO updatedExcursion);

	/**
	 * Insert Excursion identified by <code>newExcursion</code> in database
	 * @param newExcursion
	 * @return <true> if the operation on database is successful, <false> if not
	 */
	boolean insertExcursion(ExcursionDTO newExcursion);

	/**
	 * Return all ExcursionDTO of Location identified by <code>locationId</code>
	 * @param locationId
	 * @return all ExcursionDTO of one Location 
	 */
	List<ExcursionDTO> getAllExcursionsByLocation(int locationId);

}
